
;=================================================
; problem solver's classes/forms/data structures/functions
;
; solution form:
; (list (list 'one 'solution) (list 'second 'solution))
;
; solver:
; (abstract-solve)



;=================================================
; function's contract: to return a list what shall represent an
; optimal solutions for achieving certain goal in a specified environment:
; returns (list (list 'one 'solution) (list 'second 'solution)) or nil
(defgeneric solve (solver environment goal))


;=================================================
; base solver class
(defclass AbstractSolver () ())

(defmethod solve ((solver AbstractSolver) environment goal)
 nil)

; load way-finder solver
(load "way_finder.lsp")

;=================================================
; generic test procedure
;
(defun test-proc ()

 (test-way-finder)
 )

;=================================================
; entry point
;
(defun main ()
 (format t "in main~%")
 (test-proc)
 (exit)
 )


(main)

